﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.dhrt
    方程求根对分法
    f方程左端函数f(x)的函数名。
    参数 a: a求根区间的左端点。
    参数 b: b求根区间的右端点。
    参数 h: h搜索求根所采用的步长。
    参数 eps: 控制精度要求。
    参数 x: x[m]存放返回的实根。实根个数由函数值返回。
    参数 m: m实根个数的预估值。
    返回值 函数返回搜索到的实根个数。若此值等于m，则有可能没有搜索完。
    */

    public static string drive_dhrt()
    {
        int i, n;
        int m = 6;
        double[] x = new double[6];

        gl.f_x = dhrtf;
        n = gl.dhrt(-2.0, 5.0, 0.2, 0.000001, x, m);

        return gl.html_table("根的个数 =" + n + ":", x);
    }

    // f(x)
    private static double dhrtf(double x)
    {
        double z;
        z = (((((x - 5.0) * x + 3.0) * x + 1.0) * x - 7.0) * x + 7.0) * x - 20.0;
        return (z);
    }
}
